//路由
const koaRouter = require("@koa/router");

//前缀
const momentRouter = new koaRouter({ prefix: "/moment" });

const {
  create,
  list,
  detail,
  update,
  remove,
  addLabels,
} = require("../controller/moment_controller");

const { verifyAuth, verifyPermission } = require("../middleware/auth.middleware");

const { verifyLabelExists } = require("../middleware/label.middleware");

//创建
momentRouter.post("/", verifyAuth, create);

// list列表
momentRouter.get("/", verifyAuth, list);

// 详情
momentRouter.get("/:momentId", verifyAuth, detail);

// 修改
momentRouter.patch("/:momentId", verifyAuth, verifyPermission, update);

// 删除
momentRouter.delete("/:momentId", verifyAuth, verifyPermission, remove);

// 给动态添加标签
/* 
中间件：1.是否登录 2.验证是否有操作这个动态的权限 3.额外的中间件：验证label的name是否已经存在于label表中
如果存在，那么直接使用即可，如果没有存在，那么需要先将label的name添加label表
4.最终步骤 所有的labels都在已经在label表 和label关系，添加到关系表中
*/

// 给动态添加标签
momentRouter.post("/:momentId/labels", verifyAuth, verifyPermission, verifyLabelExists, addLabels);

module.exports = momentRouter;
